<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>  
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  <title>VeeGee</title>
  <link href="/css/style.css" media="screen" rel="stylesheet" type="text/css" >
</head> 
<body>
	<h2>About</h2>
	<p>
		VeeGee is a simple HTTP API to Apache's SVG processor allowing developers to dynamically generate and transform their data in to bitmap graphics.
	</p>
	<p>
		It's essentially a simple <a href="http://en.wikipedia.org/wiki/XML_pipeline">XML-based pipeline</a> (ie. <em>XML &raquo; XSLT &raquo; SVG &raquo; PNG</em>) with the XML 
		(data) and XSLT (transform) existing at URIs of your choice.
	</p>
	<p>
		This is a prototype with limited capacity and not to be used in production, if you know what's good for you.
	</p>
	<h2>API</h2>
	<p>
		<ul>
			<li><a href="/rasterize/http://veegee.googlecode.com/svn/trunk/samples/box.svg">/rasterize/:svg</a> - render a SVG document as a PNG.</li>
			<li><a href="/rasterize/http://veegee.googlecode.com/svn/trunk/samples/box.svg/via/http://veegee.googlecode.com/svn/trunk/xsl/cce47736a367e85bd553ca290dd060e2.xsl">/rasterize/:svg/via/:xsl</a> - render a SVG document transformed by XSL.</li>
			<li><a href="/rasterize/http://veegee.googlecode.com/svn/trunk/samples/box.svg/via/http://veegee.googlecode.com/svn/trunk/xsl/cce47736a367e85bd553ca290dd060e2.xsl?r=15&c1=135,22,100">/rasterize/:svg/via/:xsl?<em>p1=x</em>&amp;<em>p1=y</em></a> - as above, with parameters passed to the transform.</li>
			<li><a href="/key/:uri">/key/:uri</a> - returns a hash of a URI (each transform is cached on file system so you can use this to look up a static image).</li>
		</ul>
	</p>
	<h2>Examples</h2>
	<p>
		<ul>
			<li><a href="/rasterize/http://veegee.googlecode.com/svn/trunk/samples/rounded.svg">Rounded corners</a> - store your css/design assets as SVG.</li>
			<li><a href="/rasterize/http://veegee.googlecode.com/svn/trunk/samples/box.svg/via/http://veegee.googlecode.com/svn/trunk/xsl/cce47736a367e85bd553ca290dd060e2.xsl?r=20&c1=255,6,8&c2=234,150,76">Box with RGB gradient and radius</a>, <a href="/rasterize/http://veegee.googlecode.com/svn/trunk/samples/box.svg/via/http://veegee.googlecode.com/svn/trunk/xsl/cce47736a367e85bd553ca290dd060e2.xsl?r=10&c1=10,50,150&c2=50,130,200&w=100">or like this</a> - Dynamically swap the asset properties at render time for different parts of your website</li>
			<li><a href="/rasterize/http://upload.wikimedia.org/wikipedia/commons/4/4f/Naval_Ensign_of_Japan.svg">Rasterise a Wikipedia SVG document</a> - perhaps for browsers that can't do SVG</li>
			<li><a href="/rasterize/http://veegee.googlecode.com/svn/trunk/samples/world.svg">World map</a></li>
			<li><a href="/rasterize/http://veegee.googlecode.com/svn/trunk/samples/world.svg/via/http://veegee.googlecode.com/svn/trunk/xsl/world.xsl?tag=fr">World map with country code highlighted (france)</a> - toggle the country code in the querystring to render other countries, eg. <a href="/rasterize/http://veegee.googlecode.com/svn/trunk/samples/world.svg/via/http://veegee.googlecode.com/svn/trunk/xsl/world.xsl?tag=us">United States</a>, <a href="/rasterize/http://veegee.googlecode.com/svn/trunk/samples/world.svg/via/http://veegee.googlecode.com/svn/trunk/xsl/world.xsl?tag=tg">Togo</a>.</li>
			<li><a href="/rasterize/http://veegee.googlecode.com/svn/trunk/samples/world.svg/via/http://veegee.googlecode.com/svn/trunk/xsl/world.xsl?tag=us&rgb=23,100,255&opacity=0.6">World map with adjusted opacity and fill</a></li>
			<li><a href="/rasterize/http://veegee.googlecode.com/svn/trunk/samples/world.svg/via/http://veegee.googlecode.com/svn/trunk/xsl/world.xsl?tag=g8&rgb=130,150,60&opacity=0.9">Map highlighting G8 membership</a> - Derived from the <a href="http://veegee.googlecode.com/svn/trunk/samples/world.svg">XML</a> class attributes</li>
			<li><a href="/rasterize/http://www.bbc.co.uk/nature/species/Giant_tube_worm.rdf/via/http://veegee.googlecode.com/svn/trunk/xsl/wildlife.xsl">Dynamicaly watermark your images</a> - produced from the <a href="http://www.bbc.co.uk/ontologies/wildlife/2010-02-22.shtml">Wildlife RDF API</a>, Eg. swap out the Wikipedia ID <a href="/rasterize/http://www.bbc.co.uk/nature/species/Common_Toad.rdf/via/http://veegee.googlecode.com/svn/trunk/xsl/wildlife.xsl">Common_Toad</a></li>
		</ul>
	</p>
	<h2>Why?</h2>
	<p>
	    <ul>
		<li>The web is data-driven (eg. xml) but design is stuck in bitmaps and Photoshop-land.</li>
   		<li>Design should become programmable, testable, decided at the point of being served (ie. dynamic, personalised).</li>
    		<li>Workflow between design and dev and user should be two-way.</li>
    		<li>Design should parameterise their requirements not have to deliver bitmap PSDs.</li>
   		<li>Why do developers need Photoshop? It's expensive and we only use 1% of it's features.</li>
	    </ul>
	</p>
	<h2>Download</h2>
	<p>
		The project is hosted at <a href="http://code.google.com/p/veegee/">Google Code</a>.
	</p>
	<h2>Contact</h2>
	<p>
		Contact: &lt;matt.chadburn[at]bbc.co.uk&gt;
	</p>

</body>
</html>
